/**
 * 
 */
package com.intelap.fabricaciones;

import java.util.logging.Logger;

import com.intelap.utils.ProductorRecursos;

/** @author ggpollit */
public class ConocedorUnidadTrabajoActual {
	private ConocedorUnidadTrabajoActual(){} // indica que esta clase no es instanciable
	
	private static Logger logger = ProductorRecursos.getLogger(ConocedorUnidadTrabajoActual.class);

	private static ThreadLocal<UnidadTrabajo> unidadTrabajoActual = new ThreadLocal<>();
	/** Da la {@link UnidadTrabajo} correspondiente a la conversación actual. */
	public static UnidadTrabajo getActual() {
		return unidadTrabajoActual.get();
	}
	public static void setActual(UnidadTrabajo ut) {
		UnidadTrabajo utAnterior = unidadTrabajoActual.get();
		if (ut != utAnterior) {
			assert utAnterior == null;
			unidadTrabajoActual.set(ut);
			logger.info("UnidadTrabajo#" + System.identityHashCode(ut) + " puesta en Thread#"
					+ System.identityHashCode(Thread.currentThread().getId()));
		}
	}
}
